<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Utilities: GDK-PixBuf Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GDK-PixBuf Reference Manual">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html" title="Drawables to Pixbufs">
<link rel="next" href="gdk-pixbuf-Animations.html" title="Animations">
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#gdk-pixbuf-Utilities.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gdk-pixbuf-Animations.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gdk-pixbuf-Utilities"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gdk-pixbuf-Utilities.top_of_page"></a>Utilities</span></h2>
<p>Utilities — Utility and miscellaneous convenience functions.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-Utilities.html#gdk-pixbuf-add-alpha" title="gdk_pixbuf_add_alpha ()">gdk_pixbuf_add_alpha</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-Utilities.html#gdk-pixbuf-copy-area" title="gdk_pixbuf_copy_area ()">gdk_pixbuf_copy_area</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-Utilities.html#gdk-pixbuf-saturate-and-pixelate" title="gdk_pixbuf_saturate_and_pixelate ()">gdk_pixbuf_saturate_and_pixelate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-Utilities.html#gdk-pixbuf-apply-embedded-orientation" title="gdk_pixbuf_apply_embedded_orientation ()">gdk_pixbuf_apply_embedded_orientation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-Utilities.html#gdk-pixbuf-fill" title="gdk_pixbuf_fill ()">gdk_pixbuf_fill</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gdk-pixbuf/gdk-pixbuf.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.description"></a><h2>Description</h2>
<p>These functions provide miscellaneous utilities for manipulating
pixbufs.  The pixel data in pixbufs may of course be manipulated
directly by applications, but several common operations can be
performed by these functions instead.</p>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gdk-pixbuf-add-alpha"></a><h3>gdk_pixbuf_add_alpha ()</h3>
<pre class="programlisting"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *
gdk_pixbuf_add_alpha (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                      <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> substitute_color</code></em>,
                      <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> r</code></em>,
                      <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> g</code></em>,
                      <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> b</code></em>);</pre>
<p>Takes an existing pixbuf and adds an alpha channel to it.
If the existing pixbuf already had an alpha channel, the channel
values are copied from the original; otherwise, the alpha channel
is initialized to 255 (full opacity).</p>
<p>If <em class="parameter"><code>substitute_color</code></em>
 is <a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the color specified by (<em class="parameter"><code>r</code></em>
, <em class="parameter"><code>g</code></em>
, <em class="parameter"><code>b</code></em>
) will be
assigned zero opacity. That is, if you pass (255, 255, 255) for the
substitute color, all white pixels will become fully transparent.</p>
<div class="refsect3">
<a name="gdk-pixbuf-add-alpha.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>substitute_color</p></td>
<td class="parameter_description"><p>Whether to set a color to zero opacity.  If this
is <a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, then the (<em class="parameter"><code>r</code></em>
, <em class="parameter"><code>g</code></em>
, <em class="parameter"><code>b</code></em>
) arguments will be ignored.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>r</p></td>
<td class="parameter_description"><p>Red value to substitute.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>g</p></td>
<td class="parameter_description"><p>Green value to substitute.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>Blue value to substitute.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-add-alpha.returns"></a><h4>Returns</h4>
<p> A newly-created pixbuf with a reference count of 1. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-copy-area"></a><h3>gdk_pixbuf_copy_area ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdk_pixbuf_copy_area (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *src_pixbuf</code></em>,
                      <em class="parameter"><code><span class="type">int</span> src_x</code></em>,
                      <em class="parameter"><code><span class="type">int</span> src_y</code></em>,
                      <em class="parameter"><code><span class="type">int</span> width</code></em>,
                      <em class="parameter"><code><span class="type">int</span> height</code></em>,
                      <em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *dest_pixbuf</code></em>,
                      <em class="parameter"><code><span class="type">int</span> dest_x</code></em>,
                      <em class="parameter"><code><span class="type">int</span> dest_y</code></em>);</pre>
<p>Copies a rectangular area from <em class="parameter"><code>src_pixbuf</code></em>
 to <em class="parameter"><code>dest_pixbuf</code></em>
.  Conversion of
pixbuf formats is done automatically.</p>
<p>If the source rectangle overlaps the destination rectangle on the
same pixbuf, it will be overwritten during the copy operation.
Therefore, you can not use this function to scroll a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-copy-area.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_pixbuf</p></td>
<td class="parameter_description"><p>Source pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_x</p></td>
<td class="parameter_description"><p>Source X coordinate within <em class="parameter"><code>src_pixbuf</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_y</p></td>
<td class="parameter_description"><p>Source Y coordinate within <em class="parameter"><code>src_pixbuf</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>Width of the area to copy.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>Height of the area to copy.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_pixbuf</p></td>
<td class="parameter_description"><p>Destination pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_x</p></td>
<td class="parameter_description"><p>X coordinate within <em class="parameter"><code>dest_pixbuf</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_y</p></td>
<td class="parameter_description"><p>Y coordinate within <em class="parameter"><code>dest_pixbuf</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-saturate-and-pixelate"></a><h3>gdk_pixbuf_saturate_and_pixelate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdk_pixbuf_saturate_and_pixelate (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *src</code></em>,
                                  <em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *dest</code></em>,
                                  <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> saturation</code></em>,
                                  <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> pixelate</code></em>);</pre>
<p>Modifies saturation and optionally pixelates <em class="parameter"><code>src</code></em>
, placing the result in
<em class="parameter"><code>dest</code></em>
. <em class="parameter"><code>src</code></em>
 and <em class="parameter"><code>dest</code></em>
 may be the same pixbuf with no ill effects.  If
<em class="parameter"><code>saturation</code></em>
 is 1.0 then saturation is not changed. If it's less than 1.0,
saturation is reduced (the image turns toward grayscale); if greater than
1.0, saturation is increased (the image gets more vivid colors). If <em class="parameter"><code>pixelate</code></em>

is <a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then pixels are faded in a checkerboard pattern to create a
pixelated image. <em class="parameter"><code>src</code></em>
 and <em class="parameter"><code>dest</code></em>
 must have the same image format, size, and
rowstride.</p>
<div class="refsect3">
<a name="gdk-pixbuf-saturate-and-pixelate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>source image</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest</p></td>
<td class="parameter_description"><p>place to write modified version of <em class="parameter"><code>src</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>saturation</p></td>
<td class="parameter_description"><p>saturation factor</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixelate</p></td>
<td class="parameter_description"><p>whether to pixelate</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-apply-embedded-orientation"></a><h3>gdk_pixbuf_apply_embedded_orientation ()</h3>
<pre class="programlisting"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> *
gdk_pixbuf_apply_embedded_orientation (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *src</code></em>);</pre>
<p>Takes an existing pixbuf and checks for the presence of an
associated "orientation" option, which may be provided by the 
jpeg loader (which reads the exif orientation tag) or the 
tiff loader (which reads the tiff orientation tag, and
compensates it for the partial transforms performed by 
libtiff). If an orientation option/tag is present, the
appropriate transform will be performed so that the pixbuf
is oriented correctly.</p>
<div class="refsect3">
<a name="gdk-pixbuf-apply-embedded-orientation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>A <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-apply-embedded-orientation.returns"></a><h4>Returns</h4>
<p> A newly-created pixbuf, <a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
not enough memory could be allocated for it, or a reference to the
input pixbuf (with an increased reference count). </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-12.html#api-index-2.12">2.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-fill"></a><h3>gdk_pixbuf_fill ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdk_pixbuf_fill (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                 <em class="parameter"><code><a href="/home/mclasen/gnome/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pixel</code></em>);</pre>
<p>Clears a pixbuf to the given RGBA value, converting the RGBA value into
the pixbuf's pixel format. The alpha will be ignored if the pixbuf
doesn't have an alpha channel.</p>
<div class="refsect3">
<a name="gdk-pixbuf-fill.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixel</p></td>
<td class="parameter_description"><p>RGBA pixel to clear to
(0xffffffff is opaque white, 0x00000000 transparent black)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.other_details"></a><h2>Types and Values</h2>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-Utilities.see-also"></a><h2>See Also</h2>
<p><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
</body>
</html>